package edu.mis.modules.room;

import com.jfinal.aop.Before;
import com.jfinal.aop.Clear;
import com.jfinal.core.Controller;

import edu.mis.model.Type;

import edu.mis.model.Room;
import edu.mis.model.Role;
import edu.mis.model.User;

/**
 * 用户控制器
 *
 */
public class RoomController extends Controller {
	
	static RoomService service = new RoomService();
	
	public void index() {
		render("room.html");
	}
	
	public void list(){
		setAttr("data", service.findAllRoomWithRoomtype());
		renderJson();  
	}

	/**
	 * 注册用户视图
	 */
	public void add() {
		    //render("add.html");  //（默认对应add.html，否则需显性指定，如render("addUser.html")）
	}

	
	
	/**
	 * 修改密码视图（默认对应edit.html，否则需显性指定，如render("editPassword.html")，）
	 *
	 */
	public void edit() {
		setAttr("room", service.findRoomById(getParaToInt("id")));  //此处user应与表单中${(user.name)!}等中的user保持一致。
	}
	
	public void updatePassword(){
		int id=this.getParaToInt("id");   //使用getPara获取表单值，与getModel方法获得表单值不同，name不能使用对象名.属性名，如user.password，而直接使用属性名，如password
		String newRoomName = this.getPara("roomName");
		String newRoomSize = this.getPara("roomSize");
		String newRoomPhoto = this.getPara("roomPhoto");
		String newRoomState = this.getPara("roomState");
		if(service.updatePassword(id, newRoomName,newRoomSize,newRoomPhoto,newRoomState)){
			setAttr("result", true);
			setAttr("msg", "修改商品成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}
	
	/**
	 * 用户授权视图
	 */
	public void auth() {
		setAttr("room", service.findRoomById(getParaToInt("id")));  //此处user应与表单中${(user.name)!}等中的user保持一致。
		setAttr("type",Type.dao.findAll());//授权前得到所有权限
	}
	
	/**
	 * 用户授权
	 */
	public void authorize(){
		int id=this.getParaToInt("id");   
		int typeId = this.getParaToInt("typeId");
		if(service.roomAuthorize(id, typeId)){
			setAttr("result", true);
			setAttr("msg", "商品分类成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}
	
	public void save(){
		Room room  =  getModel(Room.class); //注意：使用getModel方法获取表单值非常方便，不需要对每个字段进行设置，直接得到model。注意使用此方法前端表单name必须名称为“对象名.属性名”，如blog.title   其中 blog对应Blog类，title对应Blog类的title属性
		if(service.saveRoom(room)){
			setAttr("result", true); //前端ajax回调值，进行交互判断  if(data.result){.......} 注意两个result对应
			setAttr("msg", "添加商品成功!"); //前端ajax回调值，交互消息框layer.msg(data.msg)
		}else{
			setAttr("result",false);
		}
		renderJson();  //返回json，用于向前台页面返回结果
	}

}


